package com.qzsoft.zhjd.common.utils;

import com.qzsoft.jeemis.common.utils.Result;

import com.qzsoft.zhjd.common.enums.BizCode;

/**
 * @ClassName ResultUtils
 * @Description 返回结果工具类
 * @author linhuawei
 * @since 2021-09-16
 */
public class ResultUtils {

    /**
     * @Title ok
     * @Description 操作成功
     * @param <T> 数据泛型
     * @return 提示信息
     */
    public static <T> Result<T> ok() {
        Result<T> rs = new Result<T>();
        rs.setCode(BizCode.SUCCESS.getCode());
        rs.setMsg(BizCode.SUCCESS.getMessage());
        rs.setData(null);
        return rs;
    }

    /**
     * @Title ok
     * @Description 操作成功
     * @param <T>  数据泛型
     * @param data 返回数据
     * @return 提示信息
     */
    public static <T> Result<T> ok(T data) {
        Result<T> rs = new Result<T>();
        rs.setCode(BizCode.SUCCESS.getCode());
        rs.setMsg(BizCode.SUCCESS.getMessage());
        rs.setData(data);
        return rs;
    }

    /**
     * @Title error
     * @Description 操作失败
     * @param <T>     数据泛型
     * @return 提示信息
     */
    public static <T> Result<T> error() {
        Result<T> rs = new Result<T>();
        rs.setCode(BizCode.ERROR.getCode());
        rs.setMsg(BizCode.ERROR.getMessage());
        rs.setData(null);
        return rs;
    }

    /**
     * @Title error
     * @Description 操作失败
     * @param <T>     数据泛型
     * @param message 返回信息
     * @return 提示信息
     */
    public static <T> Result<T> error(String message) {
        Result<T> rs = new Result<T>();
        rs.setCode(BizCode.ERROR.getCode());
        rs.setMsg(message);
        rs.setData(null);
        return rs;
    }

    /**
     * @Title error
     * @Description 操作失败
     * @param <T>     数据泛型
     * @param bizCode 业务编码
     * @return 提示信息
     */
    public static <T> Result<T> error(BizCode bizCode) {
        Result<T> rs = new Result<T>();
        rs.setCode(bizCode.getCode());
        rs.setMsg(bizCode.getMessage());
        rs.setData(null);
        return rs;
    }

    /**
     * @Title error
     * @Description 操作失败
     * @param <T>     数据泛型
     * @param bizCode 业务编码
     * @param message 返回信息
     * @return 提示信息
     */
    public static <T> Result<T> error(BizCode bizCode, String message) {
        Result<T> rs = new Result<T>();
        rs.setCode(bizCode.getCode());
        rs.setMsg(message);
        rs.setData(null);
        return rs;
    }

}
